import axios from 'axios'
import { getLocal, removeLocal } from '@/utils/local'
import JSONbig from 'json-bigint'
// import Toast from 'vant'
import store from '@/store'
import router from '@/router'
const _axios = axios.create({
  baseURL: process.env.VUE_APP_URL
})
_axios.defaults.transformResponse = [
  function (data) {
    try {
      // 作用1：把json字符串转为js对象
      // 作用2：把里面的大数字做安全处理
      return JSONbig.parse(data)
    } catch {
      return data
    }
  }
]
// 请求拦截
_axios.interceptors.request.use(
  function (config) {
    console.log(config)
    // 设置请求头
    // config.headers.ContentType = 'application/json'
    const token = getLocal('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)
// 响应拦截
_axios.interceptors.response.use(function (response) {
  console.log('response', response)
  if (response.status === 200 || response.status === 201) {
    return response
  }
  if (response.status === 401 || response.status === 403) {
    console.log(response)
    removeLocal('token') // 删除token
    store.commit('setIsLogin', false) // 修改登录状态
    router.push('/login') // 跳转登录页面
  }
}, function (error) {
  removeLocal('token') // 删除token
  store.commit('setIsLogin', false) // 修改登录状态
  router.push('/login') // 跳转登录页面
  Promise.reject(error)
})
export { _axios }
